In the latter half of the twentieth century, there began a phenomenon known as the information revolution. While the information revolution is a historical development broader in scope than any one event or machine, no single device has come to represent the information revolution more than the digital electronic computer. The development of computer systems has surely been a revolution. Each year, computer systems grow faster, store more data, and provide more applications to their users.
A modern computer system is an enormously complex machine, usually having many sub-parts or subsystems. Typically, the system comprises one or more central processing units (CPUs) which form the heart of the system, and which execute instructions contained in computer programs stored in memory. The system further includes data storage devices, such as rotating disk drives, and hardware necessary to communicate with the outside world, such as input/output controllers; I/O devices attached thereto such as keyboards, monitors, printers, and so forth; and external communication devices for communicating with other digital systems.
For many reasons, computer systems are usually physically constructed of multiple modular components, each having some pre-defined interface to one or more other components. From the standpoint of the system, a modular component may be viewed as a “black box” which conforms to the pre-defined interface. Any component, regardless of internal structure, which conforms to the same pre-defined interface can be substituted for an existing component in the design of the computer system. This approach enables considerable flexibility in the design and configuration of computer systems. It is possible to improve the design of a computer system by improving the internal design of a modular component (while conforming to the same interface), without affecting other components of the system. This modularization occurs at various levels of generality, from modularized design of individual logic gates on a semiconductor circuit chip, to functional components of the chip, to the chip itself, to larger assemblies made of multiple chips and other components.
At some level of modularity, a component may be designed to be physically replaceable with an equivalent component after manufacture of the computer system. I.e., the component will be coupled to other components in the system using electrical connectors, clips, threaded fasteners, and the like, which are designed for coupling and uncoupling after manufacture. Such physically replaceable components are referred to as “field replaceable units” (FRUs). A finished electronic circuit board assembly, complete with all components soldered in place, is often designed as such a FRU, while an integrated circuit chip typically is not. The use of such field replaceable units facilitates the replacement of a defective component with a new component of identical type after system manufacture. It also facilitates the re-configuration or upgrade of an existing physical computer system by substituting a newer or enhanced version of a FRU for the existing unit. Additionally, a computer system may be constructed with unused couplings, which provide support for later upgrading the computer system by attaching additional FRUs to the unused couplings. The use of multiple types of FRUs attached to generic couplings enables a basic computer system design to be configured in any one of a very large number of configuration permutations.
A complex computer system may contain a large number of FRUs and a large number of couplings for circuit cards, cables, or the like, which are often difficult to visually distinguish. For example, electronic logic circuitry is typically contained in multiple circuit card assemblies (which may be a type of FRU), which are plugged into some form of card frame assembly (which may be another type of FRU), which in turn may be housed in larger racks or similar units (which may be still another type of FRU). Physically, the racks look pretty much alike, the card frame assemblies look pretty much alike, many of the cards may look alike, and communications ports on cards may look alike. A trained eye can generally tell the difference between a processor card (i.e., a card mounting one or more processor units) and a memory card (a card mounting banks of memory modules), but all processor cards may look alike and all memory cards may look alike. There may, in fact, be no physical difference whatsoever between two units, the only difference being logical assignments (such as addresses or identifiers) made by the computer system to distinguish one unit from another and/or unique identifier markings, such as part numbers and serial numbers.
For maintenance and other purposes, it is often desirable to know which physical unit (such as a FRU or a communications port coupling which is embedded in, and a portion of, a FRU) corresponds to a logical designation made by the computer system. For example, the internal diagnostics of a computer system may detect a defect in a communications path with an external device. This communications path may have a physical I/O adapter card, communications port coupling, and communications cable associated with it. In order to diagnose and correct the problem, it may be necessary to identify these physical components for test and/or replacement. If, as is often the case, there are a large number of cards, port couplings and cables, it can be difficult to determine which physical components correspond to the logical designation of the computer system. It will be understood that test or replacement of a unit is only one example of a situation in which it is desirable to identify the unit, there being many other such circumstances which do not involve test/replacement of the unit.
One technique for assisting the service person in this instance is to provide switchable indicator lights on the various units. Indicator lights often correspond to physical FRU's, but may be used for other physical components, such as communications ports. The lights are activated under control of the computer system itself, and may be activated automatically in response to detection of a condition such as a fault, or may be activated in response to a user command. For example, if a person wishes to know the physical location of a particular unit, he can command the computer to light up the indicator light of the unit corresponding to some logical designator. The system responds by switching on the indicator light, showing the person the corresponding physical unit.
Another recent development in the management of complex computer system resources is the logical partitioning of system resources. Conceptually, logical partitioning means that multiple discrete partitions are established, and the system resources of certain types are assigned to respective partitions. For example, processor resources of a multi-processor system may be partitioned by assigning different processors to different partitions, by sharing processors among some partitions and not others, by specifying the amount of processing resource measure available to each partition which is sharing a set of processors, and so forth. Tasks executing within a logical partition can use only the resources assigned to that partition, and not resources assigned to other partitions.
Where a logically partitioned computer system utilizes lighted indicators for assisting maintenance personnel, it is often desirable to permit some tasks running in each partition to light up the indicator lights applicable to hardware used by that partition. Since multiple logical partitions may actually share the same physical hardware unit, tasks running in multiple different partitions require the ability to light up the same indicator light.
The ability of different partitions to access the same indicator light could create a security exposure, in that a covert communications channel between partitions is created through the indicator light. U.S. Pat. No. 7,076,570, issued Jul. 11, 2006, to Ahrens et al., discloses a system of virtual indicators available to each partition. A partition may access, i.e., set and read, its own virtual indicators, but has no direct access to a physical indicator light which is shared by multiple partitions. A separate facility sets the state of the physical indicator as a function of the states of multiple virtual indicators associated with it.
With increasing complexity of logically partitioned systems and increasing expectations regarding the capabilities of such systems, there exists a need, not necessarily recognized in the art, for improved techniques to manage physical indicators in a logically partitioned system.